package com.itfreer.bpm.history.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.itfreer.bpm.history.dao.IBpmHistoryDao;
import com.itfreer.bpm.history.entity.BpmHistoryEntity;
import com.itfreer.form.api.BaseDao;
import com.itfreer.form.api.imp.BaseServiceImp;

/**
 * 办理过程逻辑处理服务
 * @author gj
 *
 */
@Component("bpmHistoryBaseService")
public class BpmHistoryBaseService  extends BaseServiceImp<BpmHistoryEntity> implements IBpmHistoryService {
	
	@Autowired
	private IBpmHistoryDao bpmHistoryDao;
	
	
	/**
	 * 获取实体列表
	 * @param queryFields	查询字段
	 * @param where			查询条件
	 * @param order			排序条件
	 * @param pageSize		分页大小
	 * @param pageIndex		分页索引
	 * @return
	 */
	@Override
	public List<BpmHistoryEntity> getEntitys(String queryFields, Map<String, Object> where, Map<String, Integer> order, Integer pageSize, Integer pageIndex){
		if(where==null) {
			where=new HashMap<String, Object>();
		}
		//historystatus 表示历史状态，0表示历史数据，1表示现状数据，即带办项目，21表示最新数据，也是现状数据,20表示最新的数据，也是历史数据，2表示最新数据，未来的待办数据
		where.put("historystatus:like", "0");
		
		List<BpmHistoryEntity> resultList = getDao().getEntitys(queryFields, where, order, pageSize, pageIndex);
		return resultList;
	}
	
	/**
	 * 获取当前条件下的数据行总数
	 * @param where			查询条件
	 * @return
	 */
	@Override
	public Long getRowCounts(Map<String, Object> where){
		if(where==null) {
			where=new HashMap<String, Object>();
		}
		//historystatus 表示历史状态，0表示历史数据，1表示现状数据，即带办项目，21表示最新数据，也是现状数据,20表示最新的数据，也是历史数据，2表示最新数据，未来的待办数据
		where.put("historystatus:like", "0");
		return getDao().getRowCounts(where);
	}
	
	@Override
	protected BaseDao<BpmHistoryEntity> getDao() {
		return bpmHistoryDao;
	}
}
